/*
 * Copyright (c) 2022  by Junzhao
 * THIS FILE IS PART OF JAVASE Song Huongkang PROJECT
 * All Rights Reserved.
 */

package 处理流.其他流.数据流;
import java.io.*;
import org.junit.Test;

/**
 * @Description 数据流 处理流之一
 * <b>
 *  为了方便地操作Java语言的基本数据类型和String的数据，可以使用数据流。
 * </>
 *  数据流有两个类：(用于读取和写出基本数据类型、String类的数据）
 *       DataInputStream 和 DataOutputStream
 *       分别“套接”在 InputStream 和 OutputStream 子类的流上
 *  DataInputStream中的方法
 *      boolean readBoolean() byte readByte()
 *      char readChar() float readFloat()
 *      double readDouble() short readShort()
 *      long readLong() int readInt()
 *      String readUTF() void readFully(byte[] b)
 *  DataOutputStream中的方法
 *       将上述的方法的read改为相应的write即可。
 * @Author 俊昭
 * @Date 2022/4/26
 */
public class DataStreamTest {
    @Test
    public void test001(){
        DataOutputStream dos = null;
        try { // 创建连接到指定文件的数据输出流对象
            dos = new DataOutputStream(new FileOutputStream("C:\\Users\\Junzhao\\IOStream\\数据流\\Data.JSON"));
            dos.writeUTF("我爱北京天安门"); // 写UTF字符串
            dos.writeBoolean(false); // 写入布尔值
            dos.writeLong(1234567890L); // 写入长整数
            System.out.println("写文件成功!");
        } catch (IOException e) {
            e.printStackTrace();
        } finally { // 关闭流对象
            try {
                if (dos != null) {
// 关闭过滤流时,会自动关闭它包装的底层节点流
                    dos.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
}
